namespace S.O.Domain.Dto.Output
{
    /// <summary>
    /// 医疗卡信息DTO
    /// 用于返回医疗卡的基本信息和状态
    /// </summary>
    public class MedicalCardDto
    {
        /// <summary>
        /// 医疗卡记录ID
        /// </summary>
        public long Id { get; set; }
        
        /// <summary>
        /// 医疗卡号
        /// </summary>
        public string CardNo { get; set; } = string.Empty;
        
        /// <summary>
        /// 患者ID
        /// </summary>
        public long PatientId { get; set; }
        
        /// <summary>
        /// 患者姓名
        /// </summary>
        public string PatientName { get; set; } = string.Empty;
        
        /// <summary>
        /// 身份证号（脱敏显示）
        /// </summary>
        public string IdCard { get; set; } = string.Empty;
        
        /// <summary>
        /// 联系电话（脱敏显示）
        /// </summary>
        public string Phone { get; set; } = string.Empty;
        
        /// <summary>
        /// 办卡类型
        /// </summary>
        public string CardType { get; set; } = string.Empty;
        
        /// <summary>
        /// 办卡费用
        /// </summary>
        public decimal CardFee { get; set; }
        
        /// <summary>
        /// 办卡状态
        /// </summary>
        public string CardStatus { get; set; } = string.Empty;
        
        /// <summary>
        /// 办卡日期
        /// </summary>
        public DateTime IssueDate { get; set; }
        
        /// <summary>
        /// 激活日期
        /// </summary>
        public DateTime? ActivateDate { get; set; }
        
        /// <summary>
        /// 有效期
        /// </summary>
        public DateTime ExpiryDate { get; set; }
        
        /// <summary>
        /// 办卡操作员
        /// </summary>
        public string Operator { get; set; } = string.Empty;
        
        /// <summary>
        /// 办卡窗口/科室
        /// </summary>
        public string IssueLocation { get; set; } = string.Empty;
        
        /// <summary>
        /// 是否首次办卡
        /// </summary>
        public bool IsFirstTime { get; set; }
        
        /// <summary>
        /// 原卡号
        /// </summary>
        public string? OriginalCardNo { get; set; }
        
        /// <summary>
        /// 卡片是否有效
        /// </summary>
        public bool IsValid { get; set; }
        
        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime CreateTime { get; set; }
    }
}